@import './var.less';

:root {
  --rv-popup-background-color: @popup-background-color;
  --rv-popup-transition: @popup-transition;
  --rv-popup-round-border-radius: @popup-round-border-radius;
  --rv-popup-close-icon-size: @popup-close-icon-size;
  --rv-popup-close-icon-color: @popup-close-icon-color;
  --rv-popup-close-icon-active-color: @popup-close-icon-active-color;
  --rv-popup-close-icon-margin: @popup-close-icon-margin;
  --rv-popup-close-icon-z-index: @popup-close-icon-z-index;
  --rv-popup-title-color: 'inherit';
  --rv-popup-title-font-size: @popup-title-font-size;
  --rv-popup-description-font-size: @popup-description-font-size;
  --rv-popup-description-color: @popup-description-color;
}

.@{rv-prefix} {
  &-overflow-hidden {
    overflow: hidden !important;
  }

  &-popup {
    position: fixed;
    max-height: 100%;
    overflow-y: auto;
    background-color: var(--rv-popup-background-color);
    transition: var(--rv-popup-transition);
    -webkit-overflow-scrolling: touch;

    &--center {
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);

      &.@{rv-prefix}-popup--round {
        border-radius: var(--rv-popup-round-border-radius);
      }
    }

    &--top {
      top: 0;
      left: 0;
      width: 100%;

      &.@{rv-prefix}-popup--round {
        border-radius: 0 0 var(--rv-popup-round-border-radius)
          var(--rv-popup-round-border-radius);
      }
    }

    &--right {
      top: 0;
      right: 0;

      &.@{rv-prefix}-popup--round {
        border-radius: var(--rv-popup-round-border-radius) 0 0
          var(--rv-popup-round-border-radius);
      }
    }

    &--bottom {
      bottom: 0;
      left: 0;
      width: 100%;

      &.@{rv-prefix}-popup--round {
        border-radius: var(--rv-popup-round-border-radius)
          var(--rv-popup-round-border-radius) 0 0;
      }
    }

    &--left {
      top: 0;
      left: 0;

      &.@{rv-prefix}-popup--round {
        border-radius: 0 var(--rv-popup-round-border-radius)
          var(--rv-popup-round-border-radius) 0;
      }
    }

    &-slide-top-enter,
    &-slide-top-exit-active {
      transform: translate3d(0, -100%, 0);
    }

    &-slide-right-enter,
    &-slide-right-exit-active {
      transform: translate3d(100%, 0, 0);
    }

    &-slide-bottom-enter,
    &-slide-bottom-exit-active {
      transform: translate3d(0, 100%, 0);
    }

    &-slide-left-enter,
    &-slide-left-exit-active {
      transform: translate3d(-100%, 0, 0);
    }

    &-slide-top-enter-active,
    &-slide-left-enter-active,
    &-slide-right-enter-active,
    &-slide-bottom-enter-active {
      transform: translate3d(0, 0, 0);
      transition: var(--rv-popup-transition);
    }

    &-slide-top-exit-active,
    &-slide-left-exit-active,
    &-slide-right-exit-active,
    &-slide-bottom-exit-active {
      transition: var(--rv-popup-transition);
      transition-timing-function: var(--rv-animation-timing-function-leave);
    }

    &__close-icon {
      position: absolute;
      z-index: var(--rv-popup-close-icon-z-index);
      color: var(--rv-popup-close-icon-color);
      font-size: var(--rv-popup-close-icon-size);
      cursor: pointer;

      &:active {
        color: var(--rv-popup-close-icon-active-color);
      }

      &--top-left {
        top: var(--rv-popup-close-icon-margin);
        left: var(--rv-popup-close-icon-margin);
      }

      &--top-right {
        top: var(--rv-popup-close-icon-margin);
        right: var(--rv-popup-close-icon-margin);
      }

      &--bottom-left {
        bottom: var(--rv-popup-close-icon-margin);
        left: var(--rv-popup-close-icon-margin);
      }

      &--bottom-right {
        right: var(--rv-popup-close-icon-margin);
        bottom: var(--rv-popup-close-icon-margin);
      }
    }

    &__title {
      margin: 20 * @hd 12 * @hd;
      font-weight: 500;
      color: var(--rv-popup-title-color);
      font-size: var(--rv-popup-title-font-size);
      line-height: var(--rv-popup-title-font-size);
      text-align: center;
    }

    &__description {
      margin: 0 20 * @hd;
      color: var(--rv-popup-description-color);
      font-size: var(--rv-popup-description-font-size);
    }
  }
}
